home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / LOGBOOK.ZIP / LOGADD.PRG < prev    next >
Text File  |  1987-07-07  |  5KB  |  194 lines

  1. *LOGADD VERSION 870707 CALLED FROM LOGBOOK
  2. * (c) COPYRIGHT JOE KASSER G3ZCZ 1986
  3. * IF YOU CHANGE THE STRUCTURE OF THE DATABASE TO INCREASE THE
  4. *WIDTH OF THE COMMENTS, MODIFY THE PROGRAM AS SHOWN BELOW
  5.  
  6. ACCEPT 'Are you running this in real TIME (Y/N) ? ' to rtf
  7. IF rtf = 'Y'
  8.    STORE '9999' TO otime
  9.    STORE ' ' TO dummy
  10.    * INITIALISE TIME/DATE SUBROUTINE FROM PC-SIG ,
  11.    * CHANGE FOR DBASE3
  12.    POKE 61440,180,44,205,33,137,22,13,240,137,14,15,240,195
  13.    SET CALL TO 61440
  14. ENDIF
  15.  
  16. USE &logbook
  17. STORE T TO callflag
  18. GOTO BOTTOM
  19. STORE call TO lastcall
  20. STORE # TO lastentry
  21.  
  22. *initialise new variables
  23. STORE date TO ndate
  24. STORE TIME TO ntime
  25. STORE band TO nband
  26. STORE power TO npower
  27. STORE mode TO nmode
  28. STORE rx TO nrx
  29. STORE tx TO ntx
  30.  
  31. SET INDEX TO &logbook
  32. ERASE
  33. *MAIN LOOP
  34. DO WHILE callflag
  35.  
  36.    STORE "-" TO nqslsent
  37.    STORE "-" TO nqslrx
  38.    STORE "          " TO ncall
  39. * CHANGE THE LENGTH OF THE SPACES BETWEEN THE " " ON THE NEXT LINE
  40. * IF YOU CHANGE THE WIDTH OF THE COMMENTS
  41.    STORE "          " TO ncomments
  42.    STORE " " TO logflag
  43.    STORE T TO dataflag
  44.  
  45.    DO WHILE dataflag
  46.  
  47.       IF rtf = 'Y'
  48.          DO REALTIME
  49.       ENDIF
  50.       @ 19,1  SAY lastentry
  51.       @ 19,12 SAY "LAST CONTACT WAS WITH "
  52.       @ 19,35 SAY lastcall
  53.  
  54.       @ 21,3  SAY "DATE"
  55.       @ 21,11 SAY "TIME"
  56.       @ 21,19 SAY "CALL"
  57.       @ 21,26 SAY "BAND"
  58.       @ 21,31 SAY "PWR"
  59.       @ 21,36 SAY "MODE"
  60.       @ 21,41 SAY "RX"
  61.       @ 21,45 SAY "TX"
  62.       @ 21,49 SAY "S"
  63.       @ 21,51 SAY "R"
  64.       @ 21,55 SAY "COMMENTS"
  65.       @ 23,1  SAY "QRU (*TPHL)"
  66.  
  67.       IF logflag <> 'T'
  68.          @ 22,1  GET ndate
  69.          @ 22,10 GET ntime
  70.          @ 22,15 GET ncall
  71.          @ 22,26 GET nband
  72.          @ 22,30 GET npower
  73.          @ 22,35 GET nmode
  74.          @ 22,40 GET nrx
  75.          @ 22,44 GET ntx
  76.          @ 22,48 GET nqslsent
  77.          @ 22,50 GET nqslrx
  78.          @ 22,52 GET ncomments
  79.       ENDIF
  80.  
  81.          @ 23,13 GET logflag
  82.          READ
  83.  
  84.       DO CASE
  85.          CASE logflag = 'H'
  86.             GOTO TOP
  87.             STORE 1 TO linecount
  88.             STORE TRIM(ncall) TO fcall
  89.             FIND &fcall
  90.             IF # = 0
  91.                ERASE
  92.                @ 5,1 SAY ncall
  93.                @ 5,12 SAY "Does not appear to be in the log"
  94.                WAIT
  95.                ERASE
  96.             ELSE
  97.                DO WHILE  CALL = fcall .AND. (.NOT. EOF)
  98.                   IF linecount = 1
  99.                      ERASE
  100.                      @ 1,10 SAY "PREVIOUS LOG ENTRIES ARE "
  101.                   ENDIF
  102.                   ? #,date,TIME,call,band,tx,rx,mode,power
  103.                   ?? qslsent,qslrx,comments
  104.                   STORE linecount + 1 TO linecount
  105.                   IF linecount = 20
  106.                      ?
  107.                      WAIT
  108.                      STORE 1 TO linecount
  109.                   ENDIF
  110.                   SKIP
  111.                ENDDO
  112.                ?
  113.                WAIT
  114.                IF linecount > 16
  115.                   ERASE
  116.                ENDIF
  117.             ENDIF
  118.  
  119.          CASE  logflag = 'L' .OR. logflag = 'P'
  120.             IF logflag = 'L'
  121.                *LOG ENTRY
  122.                APPEND BLANK
  123.                STORE F TO dataflag
  124.                REPLACE qslsent WITH nqslsent
  125.                REPLACE qslrx WITH nqslrx
  126.                REPLACE date WITH ndate
  127.                REPLACE TIME WITH ntime
  128.                REPLACE call WITH ncall
  129.                REPLACE band WITH nband
  130.                REPLACE power WITH npower
  131.                REPLACE mode WITH nmode
  132.                REPLACE rx WITH nrx
  133.                REPLACE tx WITH ntx
  134.                REPLACE comments WITH ncomments
  135.                STORE call TO lastcall
  136.                STORE # TO lastentry
  137.                STORE "          " TO ncall
  138.                STORE "          " TO ncomments
  139.             ENDIF
  140.             IF   logflag = 'P' .OR. logflag = 'L'
  141.                USE &logbook
  142.                GOTO BOTTOM
  143.                SKIP -12
  144.                ERASE
  145.                @ 1,1  SAY '12 ENTRIES BEFORE'
  146.                @ 1,20 SAY lastcall
  147.                @ 1,30 SAY 'IN LOG, ARE'
  148.                ?
  149.                DO WHILE .NOT. EOF
  150.                   ? #,date,time,call,band,tx,rx,mode
  151.                   ?? power,qslsent,qslrx,comments
  152.                   SKIP
  153.                ENDDO
  154.                SET INDEX TO &logbook
  155.             ENDIF
  156.  
  157.          CASE logflag = "*"
  158.             STORE F TO callflag
  159.             STORE F TO dataflag
  160.  
  161.          CASE logflag = 'T'
  162.            IF rtf = 'Y'
  163.               DO REALTIME
  164.            ENDIF
  165.            @ 22,2 SAY ndate
  166.            @ 22,12 SAY ntime
  167.       ENDCASE
  168.    ENDDO
  169. ENDDO
  170. USE
  171. * GET READY TO EXIT
  172. RELEASE lastcall,lastentry,ndate,ntime,ncall,nband,npower,nmode
  173. RELEASE nqslsent,nqslrx,nrx,ntx,ncomments,fcall,linecount,fdate
  174. RELEASE otime,rtf,mtime,cpointer,dummy,hour,min,mm,dd,yy,ndate
  175. RELEASE callflag,dataflag,logflag
  176. RETURN
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183. 
  184.  
  185.  
  186.  
  187. GET ncomments
  188.       ENDIF
  189.  
  190.          @ 23,13 GET logflag
  191.          READ
  192.  
  193.       DO CASE
  194.          CASE logflag = 'H